Observaţie: codurile sursa de mai jos, au fost făcute în BorlandC..... pentru CodeBlocks.... trebuie făcute câteva modificări privind biblioteci, using namespace std;... int main()............ return 0;
Exerciţiu 1
testaţi următoarea secvenţă de program
#include <iostream>
#include<string.h>
using namespace std;
int main()
{ char sir[100],sir1[100]; cin>>sir; ( introduceţi aici un text format din mai multe cuvinte;cel puţin 2
cout<<sir<<endl; cin.get(sir1,100); cout<<sir1;
Observaţii:
presupunem că vom introduce textul
" test pentru siruri de caractere" . Întreg textul se va reţine în buffer (memorie tampon)
Dacă se citeşte cu cin... în variabila şir se vor reţine
numai caracterele până la primul spaţiu (primul cuvânt)
şi la prima afişare se va afişa doar primul cuvânt; Orice altă citire ulterioară va prelua din buffer restul textului ( până la golirea bufferului nu puteţi introduce alt text!!)
Exerciţiu 2
int main()
{ char sir[100]="test siruri de caractere",*p;
cout<<sir<<endl;
p=sir;
cout<<p<<endl;
p=p+2;
cout<<p<<endl;
p=sir+2;
cout<<p<<endl;
return 0;
}
Observaţii: şirul a fost iniţializat în declarare
s-a declarat un pointer (p) către char
variabilele p , şir sunt adrese de memorie şi se supun regulilor
pointerilor (revedeţi operaţii permise, mod de lucru..acces... );
Marea majoritate a funcţiilor predefinite
pentru şirurile de caracterereturnează un pointer
şi trebuie să învăţaţi/înţelegeţi cum folosiţi
ce se returnează.
Exerciţiu 3
int main()
{ char sir[100]="test siruri de caractere";
int i,n;
n=strlen(sir);
for(i=0;i<=n-1;i++)
cout<<sir[i];
return 0;
}
int main()
{ char sir[100]="test siruri de caractere";
int i,n;
Observaţii: un şir de caractere poate fi parcurs/prelucrat ca orice alt vector... respectând regulile elementare ale oricărei structuri iterative (repetitive) ... condiţia de oprire 1. n=strlen(sir); strlen() returnează nr. de caractere sau 2. sau sir[i]!=NULL... parcurgeţi şirul până la marcatorul de sfârşit al şirului NULL (sau constanta caracter '\0' )
În ambele cazuri este obligatoriu să începeţi de la poziţia 0 (altfel "săriţi" primul caracter ..)
Observaţie: codurile sursa de mai jos, au fost făcute în BorlandC..... pentru CodeBlocks.... trebuie făcute câteva modificări privind biblioteci, using namespace std;... int main()............ return 0;
testaţi următoarea secvenţă de program
#include <iostream>
#include<string.h>
using namespace std;
int main()
{ char sir[100],sir1[100];
cin>>sir; ( introduceţi aici un text format din
mai multe cuvinte;cel puţin 2
cout<<sir<<endl;
cin.get(sir1,100);
cout<<sir1;
presupunem că vom introduce textul
" test pentru siruri de caractere" .
Întreg textul se va reţine în buffer (memorie tampon)
Dacă se citeşte cu cin... în variabila şir se vor reţine
numai caracterele până la primul spaţiu (primul cuvânt)
şi la prima afişare se va afişa doar primul cuvânt;
Orice altă citire ulterioară va prelua din buffer restul textului
( până la golirea bufferului nu puteţi introduce alt text!!)
int main()
{ char sir[100]="test siruri de caractere",*p;
cout<<sir<<endl;
p=sir;
cout<<p<<endl;
p=p+2;
cout<<p<<endl;
p=sir+2;
cout<<p<<endl;
return 0;
}
şirul a fost iniţializat în declarare
s-a declarat un pointer (p) către char
variabilele p , şir sunt adrese de memorie şi se supun regulilor
pointerilor (revedeţi operaţii permise, mod de lucru..acces... );
Marea majoritate a funcţiilor predefinite
pentru şirurile de caractere returnează un pointer
şi trebuie să învăţaţi/înţelegeţi cum folosiţi
ce se returnează.
int main()
{ char sir[100]="test siruri de caractere";
int i,n;
n=strlen(sir);
for(i=0;i<=n-1;i++)
cout<<sir[i];
return 0;
}
int main()
{ char sir[100]="test siruri de caractere";
int i,n;
for(i=0;sir[i]!=NULL;i++)
cout<<sir[i];
return 0;
}
un şir de caractere poate fi parcurs/prelucrat
ca orice alt vector... respectând regulile elementare ale oricărei
structuri iterative (repetitive) ... condiţia de oprire
1. n=strlen(sir); strlen() returnează nr. de caractere
sau
2. sau sir[i]!=NULL... parcurgeţi şirul până la marcatorul de sfârşit al şirului NULL (sau constanta caracter '\0' )
În ambele cazuri este obligatoriu să începeţi de la poziţia 0
(altfel "săriţi" primul caracter ..)